package com.westos.calcv2;

import java.util.Properties;

/**
 * 简单工厂模式的实现
 */
public class OperatorFactory {

    public static IOperator create2(String op){
        IOperator operator=null;
        //1.读取配置文件
        Properties p = OperatorReader.read();
        //2. 根据op获取类名
        String classname = p.getProperty(op);
        //3.根据classname创建一个类
        try{
            Class<?> clz = Class.forName(classname);
            IOperator obj = (IOperator)clz.newInstance();

            return obj;
        }catch (Exception ex){
            ex.printStackTrace();
            return null;
        }
    }
    /**
     * 使用if方式实现的工厂方法
     * @param op 操作符
     * @return
     */
    public static IOperator create(String op){
        IOperator operator=null;
        if("+".equals(op)){
            operator=new AddOperator();

        }else if("-".equals(op)){
            operator=new SubOperator();

        }else if ("*".equals(op)){
            //创建乘法的类
            operator=new MulOperator();
        }
        return operator;
    }
}